Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

sha1.cpp File Reference

sha1 (fips-180-1 standard) secure hash More...

#include "sha1.h"
#include <windows.h>
#include "deOS.hpp"
#include "deByteOrder.hpp"

Include dependency graph for sha1.cpp:

Include dependency graph

Defines

#define S(val, shift)   val = (((val) << shift) | ((val) >> (32-shift)))
#define W_GETLONG(x)   W[x] = deByteOrderBE32(*(unsigned long *)(&Buffer[x*4]))
#define F(T)   (W[(T + 13) & 0x0F] ^ W[(T + 8) & 0x0F] ^ W[(T + 2) & 0x0F] ^ W[T & 0x0F])
#define TEMP(A, B, C, D, E, WS)   (A + ft(B, C, D) + E + WS + (unsigned long)K)
#define L(A, B, C, D, E, T)
#define A   NewHash[0]
#define B   NewHash[1]
#define C   NewHash[2]
#define D   NewHash[3]
#define E   NewHash[4]
#define K   0x5A827999
#define ft(B, C, D)   ((B & C) | ((~B) & D))
#define WS_SHIFT
#define K   0x6ED9EBA1
#define ft(B, C, D)   (B ^ C ^ D)
#define K   0x8F1BBCDC
#define ft(B, C, D)   ((B & (C | D)) | (C & D))
#define K   0xCA62C1D6
#define ft(B, C, D)   (B ^ C ^ D)

Functions

void SHA1Hash (SHA1Instance *Inst, unsigned char *Buffer)
void SHA1Init (SHA1Instance *Inst)
void SHA1Process (SHA1Instance *Inst, unsigned char *Buffer, long Length)
void SHA1Finish (SHA1Instance *Inst, unsigned char *Hash, long HashLen)

Detailed Description

sha1 (fips-180-1 standard) secure hash

Author:
Lightning
This file is the intellectual property of Novus Delta, LLC.. Usage of the contents of this file is subject to the Destiny3D Member License which can be found at http://www.destiny3d.com. Any other usage is prohibited.

This file is distributed "AS IS" without warranty of any kind. Novus Delta, LLC. does not guarantee the fitness of the contents of this file for any particular purpose.

Copyright (C) 2001-2004 Novus Delta, LLC. All Rights Reserved.


Change History

Date:
Sep 2004
Author:
Lightning
Remarks:
Creation

Define Documentation

#define A   NewHash[0]
 

#define B   NewHash[1]
 

#define C   NewHash[2]
 

#define D   NewHash[3]
 

#define E   NewHash[4]
 

#define F      (W[(T + 13) & 0x0F] ^ W[(T + 8) & 0x0F] ^ W[(T + 2) & 0x0F] ^ W[T & 0x0F])
 

#define ft B,
C,
     (B ^ C ^ D)
 

#define ft B,
C,
     ((B & (C | D)) | (C & D))
 

#define ft B,
C,
     (B ^ C ^ D)
 

#define ft B,
C,
     ((B & C) | ((~B) & D))
 

#define K   0xCA62C1D6
 

#define K   0x8F1BBCDC
 

#define K   0x6ED9EBA1
 

#define K   0x5A827999
 

#define L A,
B,
C,
D,
E,
 
 

Value:

{                                               \
    if(T > 16)                                  \
    {                                           \
        W[T & 0x0F] = F(T);                     \
        S(W[T & 0x0F], 1);                      \
    }                                           \
    TempA = A;                                  \
    S(TempA, 5);                                \
    E = TEMP(TempA, B, C, D, E, W[T & 0x0F]);   \
    S(B, 30);                                   \
}

#define S val,
shift       val = (((val) << shift) | ((val) >> (32-shift)))
 

#define TEMP A,
B,
C,
D,
E,
WS       (A + ft(B, C, D) + E + WS + (unsigned long)K)
 

#define W_GETLONG      W[x] = deByteOrderBE32(*(unsigned long *)(&Buffer[x*4]))
 

#define WS_SHIFT
 


Function Documentation

void SHA1Finish SHA1Instance   Inst,
unsigned char *    Hash,
long    HashLen
 

void SHA1Hash SHA1Instance   Inst,
unsigned char *    Buffer
 

void SHA1Init SHA1Instance   Inst
 

void SHA1Process SHA1Instance   Inst,
unsigned char *    Buffer,
long    Length
 


Generated on Mon Sep 12 20:11:02 2005 for Destiny3D by doxygen1.3-rc3